// package_tools/pages/record/record.js
// function trigger(){
//     let option = {
//         duration: 100, // 动画执行时间
//         timingFunction: 'ease-in' // 动画执行效果
//     }
//     let runAnimation = wx.createAnimation(option);
// }

function showtime(start) {
    // 传递进starttime
    return Date.now() - start
}

Page({

    /**
     * 页面的初始数据
     */
    data: {
        fileData:null,
        canOperate: true,
        recordname: '一段神秘录音',
        h: '00',
        m: '00',
        s: '00',
        show: false,
        timer: null,
        startTime: 0,
        recorderManager: wx.getRecorderManager(),
        melodyList: [{
                size: '4em',
                color: '#666',
                name: 'icon-yinle',
                class: 'run',
                realclass: '',



            },
            {
                size: '4em',
                color: '#666',
                name: 'icon-yinle1',
                class: 'delay1',
                realclass: '',
            }, {
                size: '5em',
                color: '#666',
                name: 'icon-yinfuhao',
                class: 'delay2',
                realclass: '',

            }, {
                size: '5em',
                color: '#666',
                name: 'icon-yinfu',
                class: 'delay3',
                realclass: '',

            }
        ]


    },
    // 事件处理函数
    record() {
        if (this.data.canOperate) {
            const tempTime = Date.now();
            // 开启一个定时器
            
            const timer = setInterval(() => {
                const interval = showtime(tempTime) // 拿到经过的秒
                // 进行换算
                const sec = Math.floor(interval / 1000)
                const h = Math.floor(sec / 3600) < 10 ? '0' + Math.floor(sec / 3600) : '' + Math.floor(sec / 3600);
                const m_s = sec % 3600;
                const m = Math.floor(m_s / 60) < 10 ? '0' + Math.floor(m_s / 60) : '' + Math.floor(m_s / 60);
                const s = m_s % 60 < 10 ? '0' + m_s % 60 : '' + m_s % 60
                this.setData({
                    h,
                    m,
                    s
                })
                // console.log(h, m, s)
            }, 1000)
            this.setData({
                show: true,
                startTime: tempTime,
                timer: timer
            })

            // 开始录音
            this.data.recorderManager.start()
            this.data.recorderManager.onStart((res) => {
                console.log("开始")
            })
        }
        else{
            console.log("不能操作")
        }

    },
    end() {
        if (this.data.canOperate) {
            // console.log("结束");
            const tempTime = Date.now();
            clearInterval(this.data.timer)
            // console.log(tempTime - this.data.startTime)
            this.setData({
                show: false,
                timer: null
            })
            this.data.recorderManager.stop()
            this.data.recorderManager.onStop((res) => {
                // console.log('recorder stop', res)
                
                // 抬起手就拿到文件 // 此时不能点击录音 需要进行文件处理操作
                // 拿到文件路径
                this.setData({
                    canOperate:false,
                    fileData:res
                })
                
            })
        }

    },
    commonOperate(){
        this.setData({
            fileData:null,
            canOperate:true,
            h:'00',
            s:'00',
            m:'00'
        })
    },
    discard(){
        // 如果选择丢弃操作,则
        // 让fileData重新等于null,
        // 让canoperate 为true 可以继续录音
        // 让时间重置为0 
        // 封装在commonOperate中
        // console.log("丢弃操作")
        this.commonOperate();

    },
    saveSoundData(){
        // 加载中
        wx.showLoading({
          title: '保存中',
        })
        // 存储操作
        const fileSystem = wx.getFileSystemManager();
        // 拿到保存在本地的目录
        fileSystem.saveFile({
            tempFilePath:this.data.fileData.tempFilePath,
            success:(res)=>{
                console.log(res,"返回的地址")
                //存储地址和其他信息到本地化存储中
                const submitObj = {
                    duration:this.data.fileData.duration,
                    fileSize:this.data.fileData.fileSize,
                    path:res.savedFilePath,
                    title:this.data.recordname,
                    timeStamp:Date.now()
                }
                const files =wx.getStorageSync('soundRecord');
                console.log(files)
                files.unshift(submitObj);
                console.log(files)
                // 存进去
                wx.setStorage({
                    key:'soundRecord',
                    data:files,
                    success:()=>{
                        wx.hideLoading();
                        wx.showToast({
                          title: '保存成功',
                          icon:'success'
                        })
                        // 进行公共操作
                        this.commonOperate();
                    }
                })
            }
        })  

    },
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {

    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})